﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BesAsm.Stormwater.HspfCore;

namespace BesAsm.Stormwater.HspfResults
{
  public class L61StateVariables
  {
    public L61StateVariables(SegmentType segmentType)
    {
      _segmentType = segmentType;
    }

    private SegmentType _segmentType;
    private double _pers, _ceps, _surs, _uzs, _ifws, _lzs, _agws, _gwvs, _rets;

    public double Pers 
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _pers;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _pers = value;
      }
    }
    public double Ceps
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _ceps;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _ceps = value;
      }
    }
    public double Surs 
    { 
      get { return _surs; }
      set { _surs = value; }
    }
    public double Uzs
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _uzs;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _uzs = value;
      }
    }
    public double Ifws
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _ifws;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _ifws = value;
      }
    }
    public double Lzs
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _lzs;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _lzs = value;
      }
    }
    public double Agws
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _agws;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _agws = value;
      }
    }
    public double Gwvs
    {
      get
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        return _gwvs;
      }
      set
      {
        if (_segmentType != SegmentType.Perland)
          throw new ArgumentException();
        _gwvs = value;
      }
    }
    public double Rets 
    { 
      get { return _rets; }
      set { _rets = value; }
    }    
  }
}
